package com.example.learnspringboot.controller;

import cn.hutool.core.util.StrUtil;
import com.example.learnspringboot.entity.User;
import com.example.learnspringboot.service.UserService;
import org.springframework.web.bind.annotation.*;
import com.example.learnspringboot.common.Result;

import javax.annotation.Resource;
import java.util.List;

/**
 * 功能:
 * 作者:文诚锋
 * 日期:2023/10/17 16:35
 */
@RestController
public class WebController {

    @Resource
    UserService userService;

    @GetMapping("/")
    public Result hello() {
        return Result.success("success");
    }

    @PostMapping("/login")
    public Result login(@RequestBody User user) {
        if(StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPassword())) {
            return Result.error("数据输入不合法");
        }
        user = userService.login(user);
        return Result.success(user);
    }

    @PostMapping("register")
    public Result register(@RequestBody User user) {
        if (StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPassword())) {
            return Result.error("数据输入不合法");
        }
        if (user.getUsername().length() > 10 || user.getPassword().length() > 20){
            return Result.error("数据输入不合法");
        }
        user = userService.register(user);
        return Result.success(user);
    }

    @PostMapping("/post")
    //RequestBody可以将前端传回的json转化为java对象
    public Result post(@RequestBody Obj obj) {
        //在使用一个对象的属性之前要先判断它的属性是不是空
        System.out.println(obj.getName() == null ? "为null" : obj.getName().isEmpty());
        return Result.success(obj);
    }

    @PutMapping("/put")
    public Result put(@RequestBody Obj obj) {
        return Result.success(obj);
    }

    @DeleteMapping("/delete")
//    PathVariable标明id为路径参数
//    一般不以url的形式传入参数,而是采用{}的形式来删除数据
//    public result delete(@PathVariable Integer id) {
//        return result.success(id);
//    }
    public Result delete(@RequestBody List<Integer> ids) {
        return Result.success(ids);
    }
}
